Visual studio 2010 在Visual Studio 2010中构建期间,有条件地将ASP.NET MVC2视图作为资源嵌入
我在VS2010中有一个ASP.NET MVC2项目,可以以两种模式部署:独立模式或插件模式。在独立模式下,视图应以.aspx文件的形式存在于编译程序集之外(默认设置)。在插件模式下,视图(当前手动)切换到嵌入式资源,整个程序集被放入宿主项目文件夹中 目前,这要求开发人员检查每个视图,并将其从构建操作:“内容”切换到“嵌入式资源”,反之亦然。我想创建一个新的解决方案配置,以自动获取所有.aspx文件,并将它们构建为资源Visual studio 2010 在Visual Studio 2010中构建期间,有条件地将ASP.NET MVC2视图作为资源嵌入,visual-studio-2010,msbuild,asp.net-mvc-2,embedded-resource,Visual Studio 2010,Msbuild,Asp.net Mvc 2,Embedded Resource,我在VS2010中有一个ASP.NET MVC2项目,可以以两种模式部署:独立模式或插件模式。在独立模式下,视图应以.aspx文件的形式存在于编译程序集之外(默认设置)。在插件模式下,视图(当前手动)切换到嵌入式资源,整个程序集被放入宿主项目文件夹中 目前,这要求开发人员检查每个视图,并将其从构建操作:“内容”切换到“嵌入式资源”,反之亦然。我想创建一个新的解决方案配置,以自动获取所有.aspx文件,并将它们构建为资源 这似乎是解决方案,但我不希望每次向项目添加新视图时都必须编辑.csproj有
这似乎是解决方案,但我不希望每次向项目添加新视图时都必须编辑.csproj有没有办法使用通配符或其他批处理/全局条件语句将资源从内容更改为嵌入式?嗯,有时候我应该在发布前进行实验 我修改了我的.csproj文件,然后继续尝试使用通配符:
Views\*\*.aspx
…而且效果很好。我在下面发布了我重新配置的项目文件的一个片段。需要注意的一点是:添加新视图会将其置于下面代码段顶部的“始终内容”类别中。您可以接受部署.aspx文件,即使视图是作为资源嵌入的(对我来说不是问题),也可以手动将它们从下面的第一个项目组移动到其他部分
<ItemGroup> <-- Always included as content
<Content Include="Global.asax" />
<Content Include="Web.config">
<SubType>Designer</SubType>
</Content>
<Content Include="Web.Debug.config">
<DependentUpon>Web.config</DependentUpon>
</Content>
<Content Include="Web.Release.config">
<DependentUpon>Web.config</DependentUpon>
</Content>
</ItemGroup>
<Choose> <--- Only added to assembly in "Plugin Mode"
<When Condition=" '$(Configuration)'=='Plugin' ">
<ItemGroup>
<EmbeddedResource Include="Views\*\*.aspx">
</EmbeddedResource>
</ItemGroup>
</When>
<Otherwise>
<ItemGroup>
<Content Include="Views\Comment\Create.aspx" />
<Content Include="Views\Record\Create.aspx" />
</ItemGroup>
</Otherwise>
</Choose>
我不知道如何在GUI中实现这一点。在我看来,你提到的那篇文章才是最好的选择。对于在构建时切换的能力来说,每个视图多出1分钟左右并不是一个很高的代价。我不介意手动编辑.csproj,我只是希望找到一种全局性的方法——不是为了节省时间,而是为了减少由于“我忘了”时刻而导致的部署错误。