I am having difficulty with artifacts.

I am able to create the artifact and store it to TC; however, I cannot retrieve the artifiact in a manner that MSBuild can reference.

The first project (that creates the artifact), has the DLL written to : {build directory}\bin\Release\some.dll. The artifact stores correctly into TC, I can click the Artifacts dropdown as

The second project cannot find the DLL because TC places it into the build directory under the same structure. However MS Build only looks as far down as the bin directory.

Since the goal is automated builds (a rebuild of the DLL project causes a rebuild of the second project), I don't want to have to create some sort of manual process. When the DLL project creates the artifact, can I direct it to simply go to bin ? When I try that currently (*\bin\\release\\.dll => bin) it simply creates another level under the artifacts. Another option I was thinking that I could set the destination path as the bin directory, but that failed as expected.

Is there a way around this other than placing the file into the GAC? Our best practices don't allow us to place 'in development' DLLs into the GAC.

Thank you in advance.

Comment actions Permalink

Hello Stephen,

Please try pattern

bin/Release/*.dll => bin

If you'll have pattern like

bin/*/Release/.dll => bin

TeamCity will create directory structure starting from ** part of the pattern.

Please also note, that you can use . (dot) as a right part of the artifacts rule, to please files to the root artifacts directory.

Hope this helps,

Comment actions Permalink

Thank you for this answer. It works.

Can I sugggest that this be added the documentation. The verbiage you used (including the examples) made sense to me and cleared up how artifacting works within your application.

Thanks a lot Kirill.


Please sign in to leave a comment.