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

时间:2017-12-25 08:40:45

标签: c# asp.net visual-studio

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

问题:

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

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

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

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

他们不会获得任何收益,即使他们为自己提供必要的权限,因为他们没有必要的文件。

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

2 个答案:

答案 0 :(得分:2)

我非常建议您在Visual Studio中查看构建配置。在那里,您可以选择要构建的项目文件并控制输出。

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

答案 1 :(得分: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

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

虽然here告诉您即使它是关于网站也可以使用MSBuild,但请查看this链接,以便您了解如何为此目的创建项目文件。