如何通过排除一些文件夹和文件来构建不同版本的ASP.Net Webform?

问题描述 投票:0回答:2

我希望这不是一个重复的问题,因为我对它进行了足够的搜索,但我什么也没找到,也许那是因为我不知道描述我情况的恰当词语。

问题:

简介:Visual Studio可以通过简单的向导或类似的东西构建不同版本的ASP.Net Webform吗?最终输出中不应包含某些Cs,Js或Css文件或某些文件夹。

详细说明:我们有一个非常大的ASP.Net项目,包含大量文件夹并涉及许多功能,我们一直向客户提供整个项目,我们一直通过许可方法(应用私钥和公钥机制)来保护它。

现在公司考虑根据客户类型提供不同版本的应用程序,因此如果客户是小型企业,那么它将提供具有较少功能的应用程序,因为他将花费更少的钱。

请记住,我们不希望为客户提供完整的应用程序,然后根据数据库中的表中定义的权限,他可以访问我们所倾向的功能,这不是那么好,因为他是鉴于限量版许可证,他可以通过修改数据库中的相关表格或者如果他拆分相关的Cs或dll文件来更改他的权限(我已阅读有关混淆以使其更安全)

即使他们完全授予自己所需的权限,他们也不会获得任何东西,因为他们没有必需的文件。

我曾经厌倦了一个用于管理的应用程序 - 或者更好地说定制 - 项目构建过程,什么是最好的解决方案?你能开导我吗?

c# asp.net visual-studio
2个回答
2
投票

我强烈建议您在visual studio中查看构建配置。在那里,您可以选择要构建的项目文件并控制输出。

有关更多详细信息,请查看以下内容:https://msdn.microsoft.com/en-us/library/kkz9kefa.aspx


0
投票

我仍然在寻找最好的解决方案但是现在,经过大量搜索后我找到了一些应用MsBuild的解决方案,例如排除某些文件夹和一些文件被发布,你可以在visual studio项目文件中添加以下脚本(.csproj) :

<ItemGroup>
        <ExcludeFromPackageFolders Include="Scripts\large">
          <FromTarget>Project</FromTarget>
        </ExcludeFromPackageFolders> 


        <ExcludeFromPackageFiles Include="Scripts\mash.js.chirp.config"/>  
        <ExcludeFromPackageFiles Include="Content\mash.js.chirp.config"/>
</ItemGroup>

这将导致以下文件夹和文件被排除:

Scripts\large
mash.js.chirp.config

您应该将.csproj xml配置文件中的上述脚本添加到以下行的正下方:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

这里有一些有用的链接:This oneThis one

请记住,网站中没有可视工作室项目文件,因此您可以将其应用于Web应用程序,但网站,Here是MSDN的来源。

虽然here告诉你即使它是关于网站也可以使用MSBuild,看看this链接,这样你就可以学习如何为此目的创建项目文件。

© www.soinside.com 2019 - 2024. All rights reserved.