Próbuję dodać dodatkowy plik XML do procesu publikowania. Mam projekt API MVC, który ma również inny projekt (V1.0) dla kontrolerów. Używamy samouczącej się funkcji pomocy, która tworzy pliki .XML dla każdego projektu. Podczas budowania na lokalnym komputerze wszystko działa, ale przy publikowaniu (za pomocą kreatora) nie będzie dołączał tego pliku.Dodawanie dodatkowych plików do opublikowanego projektu API MVC
I zostały próbuje zaktualizować plik publikowania profilu (.pubxml), jak opisano tutaj:
http://www.asp.net/mvc/tutorials/deployment/visual-studio-web-deployment/deploying-extra-files
ale bez powodzenia. Widzę, co następuje:
- Robię porządek, żeby nic nie wisiało.
- opublikować z kreatora
- widzę w apiproject \ bin \ są wszystkie pliki w tym formacie XML apiprojectv1 i dll
- widzę w apiproject \ obj \ x86 \ Release \ AspnetCompileMerge \ Source \ bin ma dll apiprojectv1 ale nie plik xml
- widzę same jak powyżej w apiprojet \ obj \ x86 \ Release \ AspnetCompileMerge \ TempBuildDir \ bin
- widzę takie same jak powyżej w apiproject \ obj \ x86 \ Release \ Package \ PackageTmp \ bin
Nie jestem pewien, dlaczego plik nie jest kopiowany. Jest to mój pełny plik pubxml:
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is used by the publish/package process of your Web project. You can customize the behavior of this process
by editing this MSBuild file. In order to learn more about this please visit http://go.microsoft.com/fwlink/?LinkID=208121.
-->
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<WebPublishMethod>FileSystem</WebPublishMethod>
<SiteUrlToLaunchAfterPublish />
<publishUrl>\\myserver\wwwroot\apiproject</publishUrl>
<DeleteExistingFiles>False</DeleteExistingFiles>
</PropertyGroup>
<Target Name="CustomCollectFiles">
<ItemGroup>
<_CustomFiles Include="..\bin\apiprojectv1.XML" />
<FilesForPackagingFromProject Include="%(_CustomFiles.Identity)">
<DestinationRelativePath>%(RecursiveDir)%(Filename)%(Extension) </DestinationRelativePath>
</FilesForPackagingFromProject>
</ItemGroup>
</Target>
</Project>
EDIT
ja zapomniałem jedną ważną rolę, aby umieścić poniżej na dole pliku pubxml:
<PropertyGroup>
<CopyAllFilesToSingleFolderForPackageDependsOn>
CustomCollectFiles;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForPackageDependsOn>
<CopyAllFilesToSingleFolderForMsdeployDependsOn>
CustomCollectFiles;
$(CopyAllFilesToSingleFolderForPackageDependsOn);
</CopyAllFilesToSingleFolderForMsdeployDependsOn>
</PropertyGroup>
nie wiem dostać plik, ale teraz pojawia się błąd dotyczący nieznalezienia pliku, (który mogę teraz zdebugować).
Nicea, szukałem dokładnym tego rozwiązania i to załatwiło sprawę, dzięki ! – revlayle
Dziękuję, twoje rozwiązanie pracowało dla mnie, aby dołączyć dll generowane przez projekt C++, którego nie można odwoływać się w normalnym projekcie .net! – Mcanic
Nie mogę tego uruchomić. Próbowałem nawet bezwzględnej ścieżki systemu Windows, ale to nie działa. –