У меня есть решение, которое включает слабосвязанные проекты с приложением ASP.Net MVC. Я установил вывод всех проектов в папку «MvcProject \ bin». Итак, мне нужно очистить / перестроить решение, прежде чем я смогу запустить свое веб-приложение. Проблема в том, что когда я публикую это в Azure или в локальной системе, он не будет включать все библиотеки DLL проекта (и его зависимые библиотеки DLL, он будет включать только MvcProject и его зависимые библиотеки DLL). Есть ли способ сообщить VS (или msbuild) очистить / перестроить решение и включить все связанные библиотеки DLL проекта, выход которых установлен на 'MvcProject \ bin'
1 ответ
Вот что я сделал. Прежде всего отредактировал все мои проекты библиотеки классов csproj файл OutPath, чтобы,
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
..................................
<OutputPath>bin\Debug\</OutputPath>
..................................
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
..................................
<OutputPath>bin\Release\</OutputPath>
..................................
Затем добавьте это в нижнюю часть файла csproj моего приложения MVC (перед </Project>
),
<Target Name="AfterBuild">
<ItemGroup>
<_CustomFiles Include="..\Project1\bin\$(Configuration)\**\*;..\Project2\bin\$(Configuration)\**\*" />
................................................................
</ItemGroup>
<Copy SourceFiles="@(_CustomFiles)" DestinationFiles="@(_CustomFiles->'bin\%(Filename)%(Extension)')" SkipUnchangedFiles="true" />
</Target>
Наконец, добавьте это в мой Azure.pubxml (вы можете найти его в Properties/PublishProfiles
) внизу файла (перед </Project>
),
<Target Name="CustomCollectFiles">
<ItemGroup>
<_CustomFiles Include="..\Project1\bin\$(Configuration)\**\*;..\Project2\bin\$(Configuration)\**\*" />
................................................................
<FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
<DestinationRelativePath>bin\%(RecursiveDir)%(Filename)%(Extension)</DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
CustomCollectFiles;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
<CopyAllFilesToSingleFolderForMsdeployDependsOn>
CustomCollectFiles;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForMsdeployDependsOn>
</PropertyGroup>
Похожие вопросы
Новые вопросы
asp.net
ASP.NET - это среда разработки веб-приложений Microsoft, которая позволяет программистам создавать динамические веб-сайты, веб-приложения и веб-службы. Полезно использовать этот тег в сочетании с тегом типа проекта, например, [asp.net-mvc], [asp.net-webforms] или [asp.net-web-api]. НЕ используйте этот тег для вопросов о ASP.NET Core - используйте вместо этого [asp.net-core].